/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.remote.soap.extender.test.internal.handler; import java.net.URL; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamSource; import javax.xml.ws.LogicalMessage; import javax.xml.ws.handler.LogicalHandler; import javax.xml.ws.handler.LogicalMessageContext; import javax.xml.ws.handler.MessageContext; /** * @author Carlos Sierra Andrés */ public class SampleHandler implements LogicalHandler<LogicalMessageContext> { public SampleHandler() { _transformerFactory = TransformerFactory.newInstance(); _url = SampleHandler.class.getResource("dependencies/template.xsl"); } @Override public void close(MessageContext messageContext) { } @Override public boolean handleFault(LogicalMessageContext logicalMessageContext) { return true; } @Override public boolean handleMessage(LogicalMessageContext logicalMessageContext) { try { boolean outboundMessage = (boolean)logicalMessageContext.get( MessageContext.MESSAGE_OUTBOUND_PROPERTY); if (!outboundMessage) { return true; } LogicalMessage logicalMessage = logicalMessageContext.getMessage(); Transformer transformer = _transformerFactory.newTransformer( new StreamSource(_url.openStream())); DOMResult domResult = new DOMResult(); transformer.transform(logicalMessage.getPayload(), domResult); logicalMessage.setPayload(new DOMSource(domResult.getNode())); return true; } catch (Exception e) { throw new RuntimeException(e); } } private final TransformerFactory _transformerFactory; private final URL _url; }